package cn.ware.house.interfaces.entity.inbound;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public class InboundOrder {
    private Integer inboundOrderId; // 入库订单编号，唯一标识每个入库订单，对应数据库表中的inbound_order_id字段
    private String inboundOrderNumber; // 入库单号，用于唯一区分不同的入库业务操作，对应数据库表中的inbound_order_number字段
    private Date inboundDate; // 入库时间，记录商品实际入库的时间戳，对应数据库表中的inbound_date字段
    private Integer supplierId; // 供应商编号，关联到供应商表，确定商品的来源供应商，对应数据库表中的supplier_id字段
    // 仓库编号，关联到仓库表，表明商品入库的目标仓库，对应数据库表中的warehouse_id字段
    private Integer warehouseId;
    private BigDecimal totalValue; // 本次入库的总价值，统计本次入库所有商品的总价值金额，对应数据库表中的total_value字段
    private Integer totalQuantity; // 本次入库的总数量，统计本次入库所有商品的总数量，对应数据库表中的total_quantity字段
    private String creator; // 创建人，记录发起此次入库操作的人员姓名或账号等信息，对应数据库表中的creator字段
    private Date createTime; // 创建时间，记录入库订单创建的时间戳，对应数据库表中的create_time字段
    private Date updateTime; // 更新时间，记录入库订单最后一次更新的时间戳，对应数据库表中的update_time字段
    //存放入库商品信息使用
    private List<InboundProduct> inboundProducts;

    public List<InboundProduct> getInboundProducts() {
        return inboundProducts;
    }

    public void setInboundProducts(List<InboundProduct> inboundProducts) {
        this.inboundProducts = inboundProducts;
    }

    public Integer getInboundOrderId() {
        return inboundOrderId;
    }

    public void setInboundOrderId(Integer inboundOrderId) {
        this.inboundOrderId = inboundOrderId;
    }

    public String getInboundOrderNumber() {
        return inboundOrderNumber;
    }

    public void setInboundOrderNumber(String inboundOrderNumber) {
        this.inboundOrderNumber = inboundOrderNumber;
    }

    public Date getInboundDate() {
        return inboundDate;
    }

    public void setInboundDate(Date inboundDate) {
        this.inboundDate = inboundDate;
    }

    public Integer getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Integer supplierId) {
        this.supplierId = supplierId;
    }

    public Integer getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseId(Integer warehouseId) {
        this.warehouseId = warehouseId;
    }

    public BigDecimal getTotalValue() {
        return totalValue;
    }

    public void setTotalValue(BigDecimal totalValue) {
        this.totalValue = totalValue;
    }

    public Integer getTotalQuantity() {
        return totalQuantity;
    }

    public void setTotalQuantity(Integer totalQuantity) {
        this.totalQuantity = totalQuantity;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        return "InboundOrder{" +
                "inboundOrderId=" + inboundOrderId +
                ", inboundOrderNumber='" + inboundOrderNumber + '\'' +
                ", inboundDate=" + inboundDate +
                ", supplierId=" + supplierId +
                ", warehouseId=" + warehouseId +
                ", totalValue=" + totalValue +
                ", totalQuantity=" + totalQuantity +
                ", creator='" + creator + '\'' +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                ", inboundProducts=" + inboundProducts +
                '}';
    }
}
